XCTF Fianl 7th 祭

Gossip

在nuaa搞竞赛是否搞错了什么

今天是3202.3.31,经历了好几天的鬼混生活,写这篇文章的时候我只剩下半条命了(

总的来说,今年的题目比较烂,但是师傅们一起玩的很开心

如果是来看wp的师傅们可以直接点旁边目录跳转

Before

2023.3.28 终于见到了可爱的可可姐,感觉人生都亮起来了(雾

上完早八,直接收拾好东西去酒店找可可,dbt说下午马上就能到,于是坐地铁去景枫里面带可可姐逛商场,顺便等等dbt。结果逛了两圈,买了奶茶,吃完了饭,聊累了天,还是没见dbt的人影,于是可可开始催我,我就去群里催dbt。

我:人呢?人呢?人呢?人呢?急急急急急

DBT:别急 刚下飞机

DBT:在地铁上 我们9个人

DBT:先去签到 马上就到了

DBT:别急 打车呢

这可能就是蒋队的责任心罢,毕竟要先把队友们都安排好,但是来吃饭的时候已经两点半了,商场里的餐馆都下班了,最后带着L的学弟学妹们吃了披萨🍕(

等吃完饭拉上dbt,去南京南拉上了学弟,再去鸡鸣寺找To1in和桑哥,可惜樱花花季过去了,前几周满树的百花都变成了绿油油的芽,于是还是去玄武湖公园刷了点微信步数,风景不错,但是路上一直在聊天没怎么拍照,丢几张之前拍的樱花好了

image-20230402151809615

image-20230401191840480

image-20230402151830581

散完了步被To1in带着去恰海鲜,我这个平时一点海鲜都不碰的人那晚上也吃的很开心,只能说跟着本地人不管走多远都能吃到好吃的,在桌上也认识了东南密码大手子rec和sus的队长,大家聊的也都很开心,就是可可姐说要晚上喝酒跟我们一打十,还说完就不认账,我寻思拿雪碧一🥤打十🍺应该也没什么问题是吧。(逃

吃完之后和Dem0哥哥约了酒局,打算和好兄弟们好好喝一次酒,结果回宾馆的路上发现w&sm的聚餐也改到了今天,龙哥叫我去,那不得不去,于是下了地铁便和几个密码手先行分开直奔w&m聚会。

关于w&m聚会吃饭,我龙哥永远离不开火锅、烤肉、东北菜和海底捞,因为不管每次几个人怎么选,龙哥总会有各种各样的理由最后选到这几个上面去,我建议下次w&m聚会安排吃饭时候直接写个随机数全部安排好(现已加入w&m聚会吃饭菜单),就不至于每次好几个人扎堆研究吃什么了。

又是w&m线下聚会,请选择与您共进晚餐的人:

Ha1c9on Yoshino-s L1near 114 wjh Snowy_war yusa Dawn_whisper

人员选择完毕,请选择您们准备前往的饭店:

火锅 海底捞 烤肉 东北菜

请选择吃完饭之后的活动安排:

上网 上网 上网 上网 上网 上网 上网

您的聚会已经全部安排完毕啦!去享受您的快乐生活吧!

稍微和好兄弟们聊了几句,国防科大的哥哥们也陆陆续续到了,可可姐进来喊我,科大的兄弟们可能也就这一次有机会见面,于是便和w&m的师傅们告别去下一场酒局。

关于吃饭,除了几个嘴硬的每次喝酒就接一个瓶底,dbt一个人转了一圈,这点我是服的,到我这就跟dbt一次陪了一整杯。结果点菜的时候点玉米,上来就是十几串整个玉米,我看见dbt直接傻在那之后直接就开始嘲笑😝,你小子铁定是没见过真正的北方人是怎么上菜的,最后一人一个指标没完成,还剩下几个没人要,最后让服务员都切成小段才勉强解决掉。你说你也没见过?来个图给你看看。我只能说,这才真正有北方烧烤的感觉

image-20230402160133986

再提一嘴,有些人到最后都在嘴硬:

截屏2023-04-02 16.00.39

吃完饭坐着聊天,相互加起了微信,师傅们相互介绍的时候,总免不了这几句

你好师傅我是dw,wm做密码的那个

嗷,就是师傅你啊

这时候再加上dbt几句吹水,师傅们跟我客气几下被觉得好像大家都认识我一样(,科大的师傅们人很好也很有意思,Dem0、rec、等风、init、Evolution等等师傅们也都很帅,于是大伙坐下一聊就聊到了三点半,一个个都说今晚这五个队都喝趴下之后明天排名直接上升五名,结果第二天开赛的时候我看是一个比一个猛(

晚上这nuaa是回不去了,也没有地铁去SU轰趴馆那边,我直接和dbt进行一个同床共枕,赢!

Gaming

早上7点醒来跟着dbt去混了顿酒店早餐,然后送走去现场的参赛选手,再慢慢坐地铁回nuaa上课去,回学校的时候正好9点,稍微躺了一会就去教室里上线比赛了

Crypto

Three

他🐎的,这题纯抽象,我真不懂为什么现在出题都能这样出

简单来说是个mpc,三方安全计算,但是关键代码一行不给,全靠一行英语描述自己猜,再给一个运行过程猜数据

不想多评价了,感觉出题人纯不会说人话,题目都说不清楚,读半天不知道要说啥,这题放进misc去我绝对不会多说一句话(

TSA

搞了个RSA,全文读下来感觉出题人想考个时间二分,类似测信道攻击吧,结果检测的地方没写好,开赛十分钟被非了

1
2
3
if ct == enc_flag:
print("bye~")
exit()

反手就是一个 $c*2^e$ ,返回来一个 $2m$ ,然后flag就有了…

真正的考点应该是这个

1
2
3
4
5
6
7
8
9
10
def modExp(a, e, n):
karatsuba = 10
normal = 100
montgomery = 2000
if a < n:
delay = karatsuba + montgomery
else:
delay = normal + 200
time.sleep(delay/10000)
return pow(a, e, n)

不过比赛也没revenge,懒得写正解exp咯

截屏2023-04-02 16.33.17

完蛋,好像真有预期解,那没事了

noise

题目给出一个矩阵运算 $AB+X=C\mod{N}$ ,然后给出C,在B和X都较小的情况下恢复B,一眼定真,鉴定为强*杯lattice原题,不过那题是 $AB=C\mod{N}$ ,但是也有办法
$$
[A][B]+[X]=\begin{bmatrix}A|X\end{bmatrix}\begin{bmatrix}B\\ 1\end{bmatrix}=\begin{bmatrix}A|1\end{bmatrix}\begin{bmatrix}B\\ X\end{bmatrix}=C\mod{N}
$$
这样变换一下就和那题一样了,最后结束的时候dbt说可以给x乘一个小向量,这样就是 $AB\alpha+X\alpha=C\alpha\mod{N}$ ,然后让 $X\alpha$ 等于零向量就行了,只能说曾经shallow跟我讲过这个思路,比赛现场的时候还是没想起来。另外感觉自己调参的本事还是太菜了,先丢个exp,后面好好再重新练练吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from sage.modules.free_module_integer import IntegerLattice

n = 75
m = 150
r = 56
N = 126633165554229521438977290762059361297987250739820462036000284719563379254544315991201997343356439034674007770120263341747898897565056619503383631412169301973302667340133958109

t1 = [ZZ.random_element(-2^15, 2^15) for _ in range(n*m)]
t2 = [ZZ.random_element(N) for _ in range(r*n)]
t3 = [ZZ.random_element(-2^20, 2^20) for _ in range(r*m)]
B = matrix(ZZ, n, m, t1)
L = IntegerLattice(B)
finalans = L.reduced_basis[0]
A = matrix(ZZ, r, n, t2)
X = matrix(ZZ, r, m, t3)
C = (A * B + X) % N

def attack(n, m, r, N, C):
C = C.T
M = block_matrix([[N*identity_matrix(r), zero_matrix(r, m)], [C, 2^15 * identity_matrix(m)]])
temp = M.LLL()
print("LLL done")

M = Matrix(ZZ, [temp[i][r:] for i in range(75)]) / 2^15
tempM = block_matrix([[2^30 * M.T, identity_matrix(150)]])
res = tempM.LLL()
print("LLL done")

res1 = Matrix(ZZ, [res[i][75:] for i in range(75)])
res1 = res1.BKZ(block_size = 10)
print("BKZ done")
tar = IntegerLattice(res1).reduced_basis[0]
tar_inv = [-i for i in tar]
return tar, tar_inv

ans1, ans2 = attack(n, m, r, N, C)

平等的恨每一道我调不出来的需要调参的题目

Result

W&M万年老五,我背大锅,没进前四去打KOH,可惜,归根到底只能说还是自己太菜了(

image-20230402164735355

第二天Dota2跟我们密码手没什么关系,也就是直播看看乐子,我也没怎么去写脚本,摸摸鱼啦,结果还是第五(

image-20230402164655201

After

2023.3.30 比赛结束咯,开始新一轮的鬼混2.0(

比赛结束之后,去现场找到了很多很多的师傅们,甚至还和脑王合影追星成功了,领完奖之后,龙哥说抽奖也没什么好东西,于是我们几个没去晚宴,回宾馆商量了下晚上去哪吃饭,不过过程如上所述,最后选到了东北烧烤(,y老师带着他的女朋友,wjh师傅带着他的女朋友,龙哥雪姐姐和yusa也聊得很开心,只剩下我一个人背个包在前面领路,属于是输麻了,坐下之后在群里喊或或,据说是要坐二十多站地铁,于是我们先吃起来了,饭桌上大家畅谈人生,发现大家都有着不止一技之长,还能畅谈各大公司开出的不少资薪,这下又属于是输麻了2.0,不过好一点的是,各位w&m的师傅们对我都很好,希望读完书后的生活能过得好一点吧

恰饭的时候或或和114也都陆陆续续到了,恰完了饭被龙哥拉去打游戏,吃完晚宴后dbt和南邮的很多师傅们去百家湖喝酒,于是一个劲的给我发消息打电话,甚至让我喊上龙哥一起去,但是最后还是只有我一个打了个车回到百家湖,晚上的细节我已经不想仔细描述了,感觉只有最后在门口dbt说谎不眨眼那段可以封神。简单来说有个着装很暴露的妹妹(感觉浑身上下就穿了个肚兜,我怕我多看一眼要说我色狼()来我们这桌加微信,试图约dbt去下周音乐节,实际上dbt明天就走却和人家约了下周一起,说的真真切切看的我都快信了(,最后大家一起和天命的师傅们合了照,于是便一起打车回酒店了

大晚上四点我一个人没地方住,最后还得感谢雪姐姐从睡梦里醒来让我有个地方睡下(

2023.3.31 早上听说我的闹钟响了两个小时,把雪姐姐叫醒了我还是一动不动,不过我早八的签到还是签上了,大成功!

在酒店休息好的时候已经中午了,正好赶上帆哥哥回南京、小学弟路过南航,于是一起在托乐嘉吃了顿饭。很喜欢帆哥哥见面时的说的话:“你居然还没死呢”

image-20230402214618544

下午回学校上完了课,把校队里的事情忙完了之后,感觉自己就剩下半条命了,结果又被dbt他们叫了出去,说是安排了一晚上的活动,反正我是顶不住了,本来打算最后夜不归宿最后一次,结果livehouse自己又给自己破防了(,被兄弟们安慰了会,还是觉得回学校好好休息比较好,晚上和shallow👴聊了蛮久,谁知道这次有没有想通呢,管她呢,明天爬起来接着卷绩点再说吧…

Soliloquy

我试着 一个人 一整天 都不失落
就让我 喝醉了 唱着歌 自娱自乐
开始怀疑了 被爱情击倒了
无可奈何 💔